Previous Episodes: https://www.youtube.com/playlist?list=PLpM-Dvs8t0Vak1rrE2NJn8XYEJ5M7-BqT References: - Tsoding - Musializer - https://github.com/tsoding/musializer - Tsoding Daily - The Best Coding Interview Question Ever - https://www.youtube.com/watch?v=ey68sKSFJAU Support: - BTC: bc1qj820dmeazpeq5pjn89mlh9lhws7ghs9v34x9v9 - Servers: https://zap-hosting.com/en/shop/donation/2038e94867b5e65cab2e72abf8ad956c/ Chapters: - 0:00:00 - Announcement - 0:00:42 - Build System of Musializer - 0:04:15 - Configuration - 0:10:54 - Best Interview Question - 0:11:42 - Taking Full Responsibility - 0:13:10 - Boilerplate - 0:15:25 - config.h approach - 0:16:09 - Shortcomings of config.h - 0:18:29 - Environment variables - 0:19:38 - Better approach - 0:21:31 - Generating config.h - 0:25:46 - Second Stage - 0:30:29 - Crossplatformness - 0:32:35 - Shared config - 0:33:05 - Is This Too Much Voodoo? - 0:33:49 - Building C code is easy - 0:34:31 - Two Stages, One File - 0:38:34 - Testing the UX - 0:39:51 - Multi-staging is a Powerful Idea - 0:41:39 - Shortcomings of CMake - 0:43:13 - "Modifying C is meh" - 0:43:23 - Integrating Two Stages with Musializer - 0:52:47 - Tea spill - 0:53:09 - -D is crossplatform - 0:54:52 - Microsoft being out of character - 0:55:34 - Never Trust Twitch Chat - 0:55:53 - Subcommands - 0:58:41 - Removing Config structure - 0:59:39 - Checking UX of adding parameters - 1:02:49 - Including config.h and logging the stages - 1:03:27 - Removing Config related code - 1:04:31 - Build function per target - 1:11:52 - Hotreload parameter - 1:12:28 - Shared microphone feature parameter - 1:15:34 - It's not about C - 1:16:40 - ./build/ in search folder - 1:17:18 - target names - 1:18:52 - String literals in preprocessor - 1:20:45 - MUSIALIZER_TARGET_NAME - 1:22:20 - File per target - 1:24:28 - nob_linux.c - 1:25:51 - reset of the target files - 1:27:20 - build_raylib() - 1:30:42 - build_dist() - 1:32:31 - nob subcommands - 1:34:46 - Adjust defaults - 1:35:32 - More compilation errors - 1:36:14 - Sharing hotreload parameter config - 1:37:42 - Testing hotreloading - 1:38:20 - Testing disabled hotreloading - 1:39:06 - Sharing microphone parameter config - 1:40:21 - Testing microphone feature - 1:41:03 - Summary - 1:42:00 - Q: Why not pass config via cmd args? - 1:43:30 - Outro